<!DOCTYPE html>
<html>
<head>
    <title>火柴人泛站群系统</title>
    <meta charset="UTF-8">
    <!-- SEO基础设置 -->
<meta name="description" content="火柴人泛目录程序授权官网专注泛程序开发及搭建服务。泛目录程序、百度收录、客服搭建。官网为您提供专业的火柴人泛目录程序授权，助力客服快速搭建能实现百度高效收录的泛程序。凭借优质技术，帮您突破收录瓶颈，让网站内容更快被搜索引擎抓取，提升曝光量，为业务拓展筑牢基础">
<meta name="keywords" content="火柴人泛目录程序,SEO优化,搜索引擎排名,网络营销,关键词优化,网站流量">

<!-- Open Graph协议 -->
<meta property="og:title" content="火柴人泛目录程序｜专做泛程序 - 专业售后服务团队">
<meta property="og:description" content="立即搭建自己的快速收录泛程序，提高公司品牌词排名，提升您的品牌影响力！">
<meta property="og:url" content="https://ledjd.com/current-page">
<meta property="og:image" content="https://ledjd.com/images/og-image.jpg">
<meta property="og:type" content="website">
<meta property="og:site_name" content="火柴人泛目录程序">

<!-- 移动端适配建议 -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body {
            margin: 0;
            overflow: hidden;
            background: #000;
        }
        canvas {
            background: #000;
        }
        .stats {
            position: fixed;
            top: 20px;
            left: 20px;
            color: #0ff;
            font-family: 'Arial', sans-serif;
            text-shadow: 0 0 10px #0ff;
        }
    </style>
</head>
<body>
    <div class="stats" id="stats"></div>
    <canvas id="warCanvas"></canvas>

<script>
const canvas = document.getElementById('warCanvas');
const ctx = canvas.getContext('2d');
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;

// 科技感背景特效
class CyberEffect {
    constructor() {
        this.particles = [];
        this.maxParticles = 100;
    }

    createParticles() {
        if(this.particles.length < this.maxParticles) {
            this.particles.push({
                x: Math.random() * canvas.width,
                y: Math.random() * canvas.height,
                size: Math.random() * 2,
                speed: Math.random() * 0.5 + 0.2,
                angle: Math.random() * Math.PI * 2
            });
        }
    }

    draw() {
        ctx.strokeStyle = 'rgba(0, 255, 255, 0.1)';
        ctx.lineWidth = 0.5;
        this.particles.forEach(p => {
            ctx.beginPath();
            ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);
            ctx.stroke();
            
            p.x += Math.cos(p.angle) * p.speed;
            p.y += Math.sin(p.angle) * p.speed;
            
            if(p.x < 0 || p.x > canvas.width || p.y < 0 || p.y > canvas.height) {
                p.x = Math.random() * canvas.width;
                p.y = Math.random() * canvas.height;
            }
        });
    }
}

// 火柴人类
class Stickman {
    constructor(team) {
        this.team = team;
        this.x = Math.random() * canvas.width;
        this.y = Math.random() * canvas.height;
        this.target = {x: this.x, y: this.y};
        this.health = 100;
        this.attackCooldown = 0;
        this.color = team === 'red' ? '#ff3366' : '#33ccff';
    }

    draw() {
        // 身体
        ctx.strokeStyle = this.color;
        ctx.lineWidth = 2;
        
        // 头部
        ctx.beginPath();
        ctx.arc(this.x, this.y-15, 5, 0, Math.PI*2);
        ctx.stroke();
        
        // 身体
        ctx.beginPath();
        ctx.moveTo(this.x, this.y-10);
        ctx.lineTo(this.x, this.y+10);
        ctx.stroke();
        
        // 四肢
        ctx.beginPath();
        ctx.moveTo(this.x-5, this.y);
        ctx.lineTo(this.x+5, this.y);
        ctx.stroke();
        
        ctx.beginPath();
        ctx.moveTo(this.x, this.y+10);
        ctx.lineTo(this.x-5, this.y+20);
        ctx.stroke();
        
        ctx.beginPath();
        ctx.moveTo(this.x, this.y+10);
        ctx.lineTo(this.x+5, this.y+20);
        ctx.stroke();
    }

    update() {
        // 移动逻辑
        if(Math.random() < 0.02) {
            this.target.x = this.x + (Math.random() - 0.5) * 100;
            this.target.y = this.y + (Math.random() - 0.5) * 100;
        }
        
        this.x += (this.target.x - this.x) * 0.05;
        this.y += (this.target.y - this.y) * 0.05;
        
        // 攻击逻辑
        this.attackCooldown--;
    }
}

// 法术系统
class Spell {
    constructor(x, y, type) {
        this.x = x;
        this.y = y;
        this.type = type;
        this.life = 30;
    }

    draw() {
        if(this.type === 'fire') {
            ctx.strokeStyle = `hsl(${Math.random()*40 + 20}, 100%, 50%)`;
            ctx.lineWidth = 2;
            ctx.beginPath();
            ctx.arc(this.x, this.y, this.life*2, 0, Math.PI*2);
            ctx.stroke();
        }
        else if(this.type === 'lightning') {
            ctx.strokeStyle = `rgba(255, 255, 255, ${this.life/30})`;
            ctx.lineWidth = 1;
            ctx.beginPath();
            ctx.moveTo(this.x, this.y);
            for(let i=0; i<5; i++) {
                ctx.lineTo(
                    this.x + (Math.random()-0.5)*30,
                    this.y + (Math.random()-0.5)*30
                );
            }
            ctx.stroke();
        }
    }
}

// 初始化
const stickmen = [];
const spells = [];
const cyberEffect = new CyberEffect();

for(let i=0; i<200; i++) {
    stickmen.push(new Stickman(Math.random() > 0.5 ? 'red' : 'blue'));
}

// 动画循环
function animate() {
    ctx.fillStyle = 'rgba(0, 0, 0, 0.1)';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    
    // 绘制背景特效
    cyberEffect.createParticles();
    cyberEffect.draw();
    
    // 更新和绘制火柴人
    stickmen.forEach((man, i) => {
        man.update();
        man.draw();
        
        // 随机施放法术
        if(Math.random() < 0.005) {
            spells.push(new Spell(man.x, man.y, Math.random() > 0.5 ? 'fire' : 'lightning'));
        }
    });
    
    // 处理法术
    spells.forEach((spell, i) => {
        spell.draw();
        spell.life--;
        if(spell.life <= 0) spells.splice(i, 1);
    });
    
    // 更新统计信息
    document.getElementById('stats').innerHTML = `
        参战单位: ${stickmen.length}

        活跃法术: ${spells.length}

        系统负载: ${Math.round(performance.now()/10)%100}%
    `;
    
    requestAnimationFrame(animate);
}

animate();

// 窗口调整
window.addEventListener('resize', () => {
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
});
</script>
</body>
</html>